import {Component} from "react";
import PropTypes from "prop-types";
//参数校验
//1. 下载校验插件 yarn add prop-types

//生命周期
//接受的参数在props里面
class One extends Component{
    // static propTypes={//必须是propTypes这个名称 校验格式
    //    name:PropTypes.string.isRequired,//name必须是字符串，不能为空
    //    age:PropTypes.oneOfType([
    //         PropTypes.string,
    //         PropTypes.number,
    //    ]).isRequired//age必须是数值，不能为空
    // }
    // static defaultProps={//默认值 必须是defaultProps
    //    name:"Tom",
    //    age:108
    // }
   constructor(props){
      //console.log(props);
      //super();//react直接super，不需要传参，就可以赋值
      //原因是react底层，自己做了
      //this.props=props

      //如果写constructor，严谨的写法 super(props);
      super(props);
      //直接不写constructor,底层也做了this.props=props
   }
   render(){//生命周期函数--render渲染
     console.log(this.props);
     let {name,age}=this.props;
     return <div>
        类组件--{name}--{age}
     </div>
   }
}

One.propTypes={//必须是propTypes这个名称 校验格式
    name:PropTypes.string.isRequired,//name必须是字符串，不能为空
    age:PropTypes.oneOfType([
         PropTypes.string,
         PropTypes.number,
    ]).isRequired//age必须是数值，不能为空
 }
 One.defaultProps={//默认值 必须是defaultProps
    name:"Tom",
    age:108
 }


//导出类组件
export default One;